SPath: an extensible query-language for Scala
نویسنده
چکیده
Scala combines the functional and object-oriented paradigms and is good at supporting embedded domain-specific languages. Scala presents therefore an opportunity for designing a new kind of query-language that belongs to the family of XPath-like query-languages, for querying semistructured data that is stored within internal memory. In the terminology of XPath, a relation between the nodes of a tree, is called an axis and their purpose is to provide a way of navigating between the nodes within a tree. An XPath query is then, approximately, a path of axis-steps, resembling a directory path in a file-system. XPath has 13 axes. However, it is natural to extend the notion of axis to any relation on tree-nodes, by allowing queries with user-defined axes. The effect of the approach that has been taken in this article is an alternative syntax and semantics for user-defined axes, compared with XPath 2.0. It also turns out that separating the query-language from specific types of trees, enables reuse with any tree data-structure that conforms to the composite design-pattern. SPath is an XPath-like query-language based on Linear Temporal Logic that has been implemented as a domain-specific language, embedded into Scala.
منابع مشابه
Compiling LINQ and a Scala subset into SQL:1999
Persistent programming languages have yet to embrace two relatively recent developments: (a) the integration of the functional and object paradigms; and (b) advances in optimization techniques for functional query languages. The expressiveness thus gained over the relational data model calls for an extended research agenda. We focus in this technical report on two subproblems from that agenda. ...
متن کاملExtending Scala with Database Query Capability
The integration of database and programming languages is difficult due to the different data models and type systems prevalent in each field. We present a solution where the developer may express queries encompassing program and database data. The notation used for queries is based on comprehensions, a declarative style that does not impose any specific execution strategy. In our approach, the ...
متن کاملJigg: A Framework for an Easy Natural Language Processing Pipeline
We present Jigg, a Scala (or JVMbased) NLP annotation pipeline framework, which is easy to use and is extensible. Jigg supports a very simple interface similar to Stanford CoreNLP, the most successful NLP pipeline toolkit, but has more flexibility to adapt to new types of annotation. On this framework, system developers can easily integrate their downstream system into a NLP pipeline from a raw...
متن کاملOn Graph Query Optimization in Large Networks
The dramatic proliferation of sophisticated networks has resulted in a growing need for supporting effective querying and mining methods over such large-scale graph-structured data. At the core of many advanced network operations lies a common and critical graph query primitive: how to search graph structures efficiently within a large network? Unfortunately, the graph query is hard due to the ...
متن کاملRethinking the Architecture of O/R Mapping for EMF in terms of LINQ
There is a trend in programming language design toward adopting the same query and concurrency management mechanisms that have proven successful for databases, in the form of integrated query languages and transactional memory [HG06]. We focus on the demands placed on Object/Relational Mapping (ORM) in order to support comprehension queries, as known from LINQ and Scala. The additional expressi...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Journal of Object Technology
دوره 10 شماره
صفحات -
تاریخ انتشار 2011